package nl.jteam.jsa.core;

/**
 * @author Uri Boness
 */
public interface QueryFactory {

    Query id(String id, String type);

    Query type(String type);

    Query text(String text);

    Query value(Object value);

    Query field(String fieldName, Query query);

    Query field(String fieldName, String query);

    Query fieldValue(String fieldName, Object value);

    Query range(Object from, Object to, boolean inclusive);

    Query fieldRange(String fieldName, Object from, Object to, boolean inclusive);

    Query not(Query query);

    Query and(Query... queries);

    Query or(Query... queries);

    QueryBuilder createQueryBuilder();

}
